/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package BD;

import java.util.Vector;
import gerenciadorveiculos.Veiculo;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 *
 * @author Gabriel
 */
public class daoVeiculo extends acesso{

    private String arquivo = "veiculos.dat";
    public Vector<Veiculo> buscarTodos(){
        Vector<Veiculo> vet = new Vector();
        try{
            try {
                abrirArquivoLeitura(arquivo);
            } catch (FileNotFoundException e) {
                 imprimeErro("(buscarTdosos) FileNotFoundException - Erro ao abrir arquivo leitura veiculos.dat ", e.getMessage() );
            }
        } catch(IOException e){
             imprimeErro("(buscarTodos)IOException - Erro ao abrir arquivo leitura veiculos.dat ", e.getMessage() );
             System.exit(0);
        }
        vet = (Vector)lerArquivo();
        fecharArquivoLeitura(arquivo);
        return vet;
    }


    public Vector<Veiculo> buscar(String modelo){
       Vector<Veiculo> vet = new Vector();
       Vector<Veiculo> retorno = new Vector();

       vet = this.buscarTodos();

       for(int i = 0; i< vet.size();i++){
           if(modelo.equals(vet.get(i).getModelo()))
               retorno.add(vet.get(i));
       }
       return retorno;
    }

    
   

     public Veiculo buscarChassi(String chassi){
        Vector<Veiculo> vet  = new Vector();

         vet = this.buscarTodos();
         for(int i = 0; i< vet.size();i++){
           if(chassi.equals(vet.get(i).getChassi()))
               return vet.get(i);
       }
       return null;
    }



    public void insere(Veiculo veiculo){
        try{
            try{ //abre o arquivo e salva o que ja estava la
                abrirArquivoLeitura(arquivo);
             } catch (FileNotFoundException e){
                 //imprimeErro("(insere)FileNotFoundException - Erro ao abrir arquivo leitura clientes.dat ", e.getMessage() );
                 inserirPrimeiro(veiculo);
                return;
             }
        } catch(IOException e){
             imprimeErro("(insere)IOException - Erro ao abrir arquivo leitura clientes.dat ", e.getMessage() );
             System.exit(0);
        }

         Vector vet = new Vector();
         vet = (Vector)lerArquivo(); //pasa os dados do arquivo para a memorias

         fecharArquivoLeitura(arquivo);
         vet.add(veiculo);             // incluir um novo usario na memoria


         abrirArquivoEscrita(arquivo);
         escreveArquivo(vet);       // escreve todos os usuarios de volta no arquivo
         fecharArquivoEscrita(arquivo);
    }

    private void inserirPrimeiro(Veiculo veiculo) {
         Vector<Veiculo> vet = new Vector();
         vet.add(veiculo);


         abrirArquivoEscrita(arquivo);
         escreveArquivo(vet);
         fecharArquivoEscrita(arquivo);
    }
    

}
